package com.joker.airoleplayplatformback.service;

import com.joker.airoleplayplatformback.domain.po.ChatMessagePO;
import com.joker.airoleplayplatformback.domain.po.ChatSessionPO;

import java.util.List;

/**
 * 聊天服务接口
 * @author feixiang.li
 * @since 2025-09-28
 */
public interface ChatService {
    
    /**
     * 创建新的聊天会话
     */
    ChatSessionPO createNewSession(Long userId, Long agentId);
    
    /**
     * 获取用户的所有会话
     */
    List<ChatSessionPO> getUserSessions(String userId);
    
    /**
     * 获取会话详情
     */
    ChatSessionPO getSession(String sessionId);
    
    /**
     * 保存消息
     */
    ChatMessagePO saveMessage(ChatMessagePO message);
    
    /**
     * 获取会话的所有消息
     */
    List<ChatMessagePO> getSessionMessages(String sessionId);
    
    /**
     * 获取最近的消息（用于构建上下文）
     */
    List<ChatMessagePO> getRecentMessages(String sessionId, int limit);
    
    /**
     * 删除会话
     */
    boolean deleteSession(String sessionId);
    
    /**
     * 删除消息
     */
    boolean deleteMessage(String messageId);
    
    /**
     * 更新会话最后消息时间
     */
    void updateSessionLastMessageTime(String sessionId);
}
